package iie.cas.guishuimall.coupon;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * nacos 配置中心
 * 引入依赖；bootstrap.properties
 * spring:
 *   cloud:
 *     nacos:
 *       server-addr: 192.168.88.131:8848
 *       config:
 *         server-addr: 192.168.88.131:8848
 *   application:
 *     name: guishuimall-coupon
 * 给配置中心添加一个数据集（Data Id)  guishuimall-coupon.properties 应用名+properties
 * 动态获取配置，两个注解：@RefreshScope @Value{}
 * 如果配置中心和当前应用的配置文件中都配置了相同的项，优先使用配置中心的配置；
 *
 * 配置说明：
 * 1）命名空间：配置隔离，默认public，新增的所有配置都在public空间；
 * （1）.开发、测试、生产多个环境，创建多个命名空间；public,test,prop,dev
 *config.namespace: 6ad73dbc-ca7f-4e6f-8537-3d5f353b8dd6
 * 利用命名空间做环境隔离，在bootstrap.properties配置上；
 * 每个微服务创建自己的命名空间，只加载自己命名空间下的配置；
 * 2）配置集；
 * 3）配置集ID：类似文件名，Data ID；
 * 4）配置分组：默认所有的配置都属于DefaultGroup；
 * 每个微服务创建自己的命名空间，使用配置分组区分环境；dev ,test , prod
 * 同时加载多个配置集
 * 1）微服务任何配置信息，任何配置文件都可以放在配置中心
 * 2）只需要bootstrap.properties说明加载配置中心中哪些配置文件
 * 3）@Value，@ConfigurationProperties，以前springboot任何方法从配置文件中获取值，都能使用；
 * 配置中心有的优先使用；
 *
 */
@EnableDiscoveryClient
@MapperScan("iie.cas.guishuimall.coupon.dao")
@SpringBootApplication
public class GuishuimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GuishuimallCouponApplication.class, args);
    }

}
